Autonomous coverage robot

ABSTRACT

A mobile robot that includes a robot body having a forward drive direction, a drive system supporting the robot body above a cleaning surface for maneuvering the robot across the cleaning surface, and a robot controller in communication with the drive system. The robot also includes a bumper movably supported by a forward portion of the robot body and a obstacle sensor system disposed on the bumper. The obstacle sensor system includes at least one contact sensor disposed on the bumper, at least one proximity sensor disposed on the bumper and a auxiliary circuit board disposed on the bumper and in communication with the at least one contact sensor, the at least one proximity sensor, and the robot controller.

TECHNICAL FIELD

This disclosure relates to autonomous coverage robots.

BACKGROUND

Wet cleaning of household surfaces has long been done manually using awet mop or sponge. The mop or sponge is dipped into a container filledwith a cleaning fluid to allow the mop or sponge to absorb an amount ofthe cleaning fluid. The mop or sponge is then moved over the surface toapply a cleaning fluid onto the surface. The cleaning fluid interactswith contaminants on the surface and may dissolve or otherwise emulsifycontaminants into the cleaning fluid. The cleaning fluid is thereforetransformed into a waste liquid that includes the cleaning fluid andcontaminants held in suspension within the cleaning fluid. Thereafter,the sponge or mop is used to absorb the waste liquid from the surface.While clean water is somewhat effective for use as a cleaning fluidapplied to household surfaces, cleaning is typically done with acleaning fluid that is a mixture of clean water and soap or detergentthat reacts with contaminants to emulsify the contaminants into thewater.

The sponge or mop may be used as a scrubbing element for scrubbing thefloor surface, and especially in areas where contaminants areparticularly difficult to remove from the household surface. Thescrubbing action serves to agitate the cleaning fluid for mixing withcontaminants as well as to apply a friction force for looseningcontaminants from the floor surface. Agitation enhances the dissolvingand emulsifying action of the cleaning fluid and the friction forcehelps to break bonds between the surface and contaminants.

After cleaning an area of the floor surface, the waste liquid is rinsedfrom the mop or sponge. This is typically done by dipping the mop orsponge back into the container filled with cleaning fluid. The rinsingstep contaminates the cleaning fluid with waste liquid and the cleaningfluid becomes more contaminated each time the mop or sponge is rinsed.As a result, the effectiveness of the cleaning fluid deteriorates asmore of the floor surface area is cleaned.

Some manual floor cleaning devices have a handle with a cleaning fluidsupply container supported on the handle and a scrubbing sponge at oneend of the handle. These devices include a cleaning fluid dispensingnozzle supported on the handle for spraying cleaning fluid onto thefloor. These devices also include a mechanical device for wringing wasteliquid out of the scrubbing sponge and into a waste container.

Manual methods of cleaning floors can be labor intensive and timeconsuming. Thus, in many large buildings, such as hospitals, largeretail stores, cafeterias, and the like, floors are wet cleaned on adaily or nightly basis. Industrial floor cleaning “robots” capable ofwet cleaning floors have been developed. To implement wet cleaningtechniques required in large industrial areas, these robots aretypically large, costly, and complex. These robots have a drive assemblythat provides a motive force to autonomously move the wet cleaningdevice along a cleaning path. However, because these industrial-sizedwet cleaning devices weigh hundreds of pounds, these devices are usuallyattended by an operator. For example, an operator can turn off thedevice and, thus, avoid significant damage that can arise in the eventof a sensor failure or an unanticipated control variable. As anotherexample, an operator can assist in moving the wet cleaning device tophysically escape or navigate among confined areas or obstacles.

SUMMARY

One aspect of the disclosure provides a mobile robot that includes arobot body having a forward drive direction, a drive system supportingthe robot body above a floor surface for maneuvering the robot acrossthe floor surface, and a main circuit board in communication with thedrive system. The robot also includes a bumper frame supported by therobot body and defining a shape complimentary of a front periphery ofthe robot body. An obstacle sensor system disposed on the bumper frameincludes a multiplexing auxiliary circuit board supported by the bumperframe. The auxiliary circuit board includes a computing processor andmemory. The computing processor is capable of executing instructionsstored on the memory. The obstacle sensor system includes an array ofproximity sensors distributed along the bumper frame. Each proximitysensor has at least two wires collected in at least one wire collector,which is connected to the auxiliary circuit board. The obstacle sensorsystem also includes a serial communication line connecting theauxiliary circuit board to the main circuit board, the communicationline having fewer than half the number of wires connecting the proximitysensor array to the auxiliary circuit board.

Implementations of the disclosure may include one or more of thefollowing features. In some implementations, at least one proximitysensor includes a pair of converging infrared emitter-sensor elements, asonar sensor, an ultrasonic sensor, a three-dimensional volumetric pointcloud imaging device, or a contact sensor. In some examples, eachproximity sensor includes an infrared emitter having an emission fieldand an infrared detector having a detection field. The infrared emitterand the infrared detector are arranged so that the emission fieldoverlaps with the detection field.

In some implementations, the array of proximity sensors includes anarray of wall proximity sensors disposed evenly along a forwardperimeter of the bumper frame. Each wall proximity sensor is directedoutward substantially parallel to the floor surface.

The obstacle sensor system may include an array of cliff proximitysensors distributed along the bumper frame and disposed forward ofwheels of the drive system. Each cliff proximity sensor is directeddownward at the floor surface for detecting a falling edge of the floorsurface. Moreover, each cliff proximity sensor has at least two wirescollected in at least one wire collector, which is connected to theauxiliary circuit board.

In some implementations, the obstacle sensor system includes at leastone optical confinement sensor disposed on the bumper frame and having ahorizontal field of view of between 45 degrees and 270 degrees. Theoptical confinement sensor has at least two wires collected in at leastone wire collector, which is connected to the auxiliary circuit board.

The array of proximity sensors may include an array of at least fourdiscrete proximity sensors. In some examples, the array of proximitysensors includes a first sensor array having three or more proximitysensors of a first sensor type and a second sensor array having three ormore sensors of a second sensor type distinct from the first sensortype. In some examples, notwithstanding the sensor array being describedas an array of proximity sensors, the first sensor type and secondsensor type, distinct from the first sensor type, may be any variety ofsensors described herein other than proximity sensors. The first sensorarray may be disposed vertically above the second sensor array on thebumper frame with respect to the floor surface. One of the sensor arraysmay include an array of wall proximity sensors disposed evenly along aforward perimeter of the bumper frame. Each wall proximity sensor isdirected outward substantially parallel to the floor surface. The othersensor array may include an array of cliff proximity sensors distributedalong the bumper frame and disposed forward of wheels of the drivesystem. Each cliff proximity sensor is directed downward at the floorsurface for detecting a falling edge of the floor surface. Moreover,each cliff proximity sensor has at least two wires collected in at leastone wire collector, which is connected to the auxiliary circuit board.

In some implementations, the auxiliary circuit board receives sensorsignals from the array of proximity sensors, executes sensor dataprocessing on the received sensor signals, and packages the processedsensor signals into a data packet recognizable by the main circuitboard. The sensor data processing may include at least one ofanalog-to-digital conversion, signal filtering, or signal conditioning.

In some examples, the bumper body houses and seals the bumper frame andthe obstacle sensor system against fluid infiltration. The bumper bodymay define an orifice sized to receive the serial communication line andthe orifice may define an area of less than one square centimeter. Insome examples, the orifice defines an area less than one hundredth thesurface area of the bumper body. The serial communication line has asealed fit with the orifice.

Another aspect of the disclosure provides for a mobile robot. The mobilerobot includes an array of proximity sensors distributed along thebumper frame, and each proximity sensor includes an infrared emitterhaving an emission field and an infrared detector having a detectionfield. Each proximity sensor has a sensor length defined between theinfrared emitter and an infrared detector. Each proximity sensor in thearray corresponds to a predetermined proximity sensor position along thefront periphery of the mobile robot and at least some of the proximitysensors in the array overlap one another along the front periphery ofthe mobile robot.

In some examples, the cumulative total of the individual sensor lengthsin the array is greater than a length of the array taken along the frontperiphery of the robot.

In some examples, each proximity sensor has at least two wires collectedin at least one wire collector, which is connected to the auxiliarycircuit board. A serial communication line connecting the auxiliarycircuit board to the main circuit board, the communication line havingfewer than half the number of wires connecting the proximity sensorarray to the auxiliary circuit board. The bumper also includes a bumperbody housing the bumper frame and the obstacle sensor system. The bumperbody defines an orifice sized to receive the serial communication line.

In some implementations, the bumper body seals the bumper frame and theobstacle sensor system against fluid infiltration. The serialcommunication line has a sealed fit with the orifice.

At least one proximity sensor may include a pair of converging infraredemitter-sensor elements, a sonar sensor, an ultrasonic sensor, athree-dimensional volumetric point cloud imaging device, or a contactsensor. In some examples having an infrared emitter and infrareddetector, the infrared emitter and the infrared detector are arranged sothat the emission field overlaps with the detection field.

In some implementations, the array of proximity sensors includes anarray of wall proximity sensors disposed evenly along a forwardperimeter of the bumper frame. Each wall proximity sensor is directedoutward substantially parallel to the floor surface.

The obstacle sensor system may include an array of cliff proximitysensors distributed along the bumper frame and disposed forward ofwheels of the drive system. Each cliff proximity sensor is directeddownward at the floor surface for detecting a falling edge of the floorsurface. Moreover, each cliff proximity sensor has at least two wirescollected in at least one wire collector, which is connected to theauxiliary circuit board.

In some implementations, the obstacle sensor system includes at leastone optical confinement sensor disposed on the bumper frame and having ahorizontal field of view of between 45 degrees and 270 degrees. Theoptical confinement sensor has at least two wires collected in at leastone wire collector, which is connected to the auxiliary circuit board.

The array of proximity sensors may include an array of at least fourdiscrete proximity sensors. In some examples, the array of proximitysensors includes a first sensor array having three or more proximitysensors of a first sensor type and a second sensor array having three ormore sensors of a second sensor type distinct from the first sensortype. The first and second sensor array types may be at least any of thesensor types herein discussed. The first sensor array may be disposedvertically above the second sensor array on the bumper frame withrespect to the floor surface. One of the sensor arrays may include anarray of wall proximity sensors disposed evenly along a forwardperimeter of the bumper frame. Each wall proximity sensor is directedoutward substantially parallel to the floor surface. The other sensorarray may include an array of cliff proximity sensors distributed alongthe bumper frame and disposed forward of wheels of the drive system.Each cliff proximity sensor is directed downward at the floor surfacefor detecting a falling edge of the floor surface. Moreover, each cliffproximity sensor has at least two wires collected in at least one wirecollector, which is connected to the auxiliary circuit board.

In some implementations, the auxiliary circuit board receives sensorsignals from the array of proximity sensors, executes sensor dataprocessing on the received sensor signals, and packages the processedsensor signals into a data packet recognizable by the main circuitboard. The sensor data processing may include at least one ofanalog-to-digital conversion, signal filtering, or signal conditioning.

Another aspect of the disclosure provides for a mobile robot. The mobilerobot includes an array of proximity sensors distributed along thebumper frame, and each proximity sensor includes an infrared emitterhaving an emission field and an infrared detector having a detectionfield. Each proximity sensor has at least two wires collected in atleast one wire collector, the at least one wire collector connected toan auxiliary circuit board. A communication line connects the auxiliarycircuit board to the main circuit board. A unified encasement, which insome examples is a monocoque enclosure, has two or more mating concavereceptacles. The two or more mating concave receptacles mate along aclosed rim and are sealed along that rim. The unified encasementencloses the array of proximity sensors and the auxiliary circuit board.The unified encasement includes a singled sealed aperture through whichthe communication line exits.

In some examples, the communication line is a serial communication linehaving fewer than half the number of wires connecting the array ofproximity sensors to the auxiliary circuit board.

In some examples, the single sealed aperture defines an area less thanone hundredth of the surface area of the unified encasement defined bythe mating concave receptacles. In any of the examples above, the singlesealed aperture is an orifice defining area of less than one squarecentimeter. In any of the examples listed above, the mobile robot ofclaim wherein a unified encasement defined by the mating concavereceptacles has a Japanese Industrial Standard (JIS) water resistancerating of 3 or more. In any of the examples above, the mobile robot ofclaim wherein the unified encasement is made of IR transparent andvisible light-blocking plastic

In yet another aspect of the disclosure, a method of operating a mobilerobot having a bumper includes receiving sensor signals in a auxiliarycircuit board disposed on the bumper from one or more sensors disposedon the bumper, processing the received sensor signals on the bumpercontroller, and communicating a sensor event based on the processedsensor signals from the auxiliary circuit board to a robot controller ofthe robot.

In some implementations, the method includes receiving sensor signalsfrom at least one of a contact sensor disposed on the bumper, aproximity sensor disposed on the bumper, or a camera disposed on thebumper. The processing of the received sensor signals may include atleast one of analog-to-digital conversion, signal filtering, or signalconditioning. The method may include communicating the sensor event fromthe auxiliary circuit board to the robot controller over a singlecommunication pathway, which may be sealed against fluid infiltration.

The method may include executing a mapping routing on the robotcontroller in response to the received sensor event from the auxiliarycircuit board for determining a local sensory perception of anenvironment about the robot. Moreover, the method may include issuing adrive command from the robot controller to a drive system of the robotbased on a result of the executed mapping routine.

In some examples, the method includes executing a control system on therobot controller. The control system includes a control arbitrationsystem and a behavior system in communication with each other. Thebehavior system executes at least one behavior that influences executionof commands by the control arbitration system based on sensor eventsreceived from the bumper controller. The at least one behavior mayinfluence execution of commands by the control arbitration system basedon sensor signals received from a robot sensor system.

The details of one or more implementations of the disclosure are setforth in the accompanying drawings and the description below. Otheraspects, features, and advantages will be apparent from the descriptionand drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a perspective view of an exemplary surface cleaning robot.

FIG. 2 is a bottom view of the robot shown in FIG. 1.

FIG. 3 is a partial exploded view of the robot shown in FIG. 1.

FIG. 4 is a section view of the robot shown in FIG. 1.

FIG. 5 is a partial exploded view of an exemplary bumper for a coveragerobot.

FIG. 6 is a perspective view of an exemplary obstacle sensor system.

FIG. 7 is a rear perspective view of an exemplary bumper for a coveragerobot.

FIG. 8A is a top view of an exemplary wire collector connected tomultiple proximity sensors.

FIGS. 8B and 8C are schematic views of exemplary emission and detectionfields of two stacked and staggered sensor arrays of proximity sensorsarranged on a bumper.

FIGS. 8D-8F are schematic views of exemplary emission and detectionfields of proximity sensor.

FIGS. 9A and 9B are schematic section top views of sensor fields of viewfor a surface cleaning robot.

FIG. 10A is a front perspective view of an exemplary bumper supportingmultiple sensor arrays.

FIG. 10B is a partial top view of a bumper having a communication lineconnecting a auxiliary circuit board to a robot controller.

FIG. 10C is a partial rear perspective view of an exemplary bumperframe.

FIG. 11A is a front perspective view of an exemplary bumper supporting aauxiliary circuit board having a communication line for connecting to arobot controller.

FIG. 11B is a partial top perspective view of an exemplary bumpersupporting a sensor array.

FIG. 12 is a schematic view of a bumper system for a coverage robot.

FIG. 13 is schematic view of an exemplary robotic system.

FIG. 14 is a schematic view of an exemplary robot control system.

FIG. 15 provides an exemplary arrangement of operations for a method ofoperating a mobile robot.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

A mobile autonomous robot can clean while traversing a surface. Therobot can remove wet debris from the surface by agitating the debrisand/or wet clean the surface by applying a cleaning liquid to thesurface, spreading (e.g., smearing, scrubbing) the cleaning liquid onthe surface, and collecting the waste (e.g., substantially all of thecleaning liquid and debris mixed therein) from the surface.

Referring to FIGS. 1-4, in some implementations, a robot 100 includes abody 110 supported by a drive system 120. The robot body 110 has aforward portion 112 and a rearward portion 114. The drive system 120includes right and left driven wheel modules 120 a, 120 b. The wheelmodules 120 a, 120 b are substantially opposed along a transverse axis Xdefined by the body 110 and include respective drive motors 122 a, 122 bdriving respective wheels 124 a, 124 b. The drive motors 122 a, 122 bmay releasably connect to the body 110 (e.g., via fasteners or tool-lessconnections) with the drive motors 122 a, 122 b optionally positionedsubstantially over the respective wheels 124 a, 124 b. The wheel modules120 a, 120 b can be releasably attached to the body 110 and forced intoengagement with a cleaning surface 10 by respective springs. The robot100 may include a caster wheel 126 disposed to support a forward portion112 of the robot body 110.

The robot 100 can move across the cleaning surface 10 through variouscombinations of movements relative to three mutually perpendicular axesdefined by the body 110: a transverse axis X, a fore-aft axis Y, and acentral vertical axis Z. A forward drive direction along the fore-aftaxis Y is designated F (sometimes referred to hereinafter as “forward”),and an aft drive direction along the fore-aft axis Y is designated A(sometimes referred to hereinafter as “rearward”). The transverse axis Xextends between a right side R and a left side L of the robot 100substantially along an axis defined by center points of the wheelmodules 120 a, 120 b.

The robot 100 may include a wet cleaning system 160 having a fluidapplicator 170 that extends along the transverse axis X and dispensescleaning liquid onto the surface 10 during wet vacuuming rearward of awet vacuum squeegee 180 b to allow the dispensed fluid to dwell on thecleaning surface 10. As the robot 100 maneuvers about the cleaningsurface 10, the wet vacuum squeegee 180 b sucks up previously dispensedliquid and debris suspended therein.

The robot 100 may include a dry cleaning system 190 having a rollerbrush 192 (e.g., with bristles and/or beater flaps) extending parallelto the transverse axis X and rotatably supported by the robot body 110to contact the floor surface 10 rearward of a dry vacuum squeegee 180 aand forward of the wet vacuum squeegee 180 b.

Referring to FIGS. 1-7, in some implementations, a forward portion 112of the body 110 carries a bumper 130, which detects (e.g., via one ormore sensors) one or more events in a drive path of the robot 100, forexample, as the wheel modules 120 a, 120 b propel the robot 100 acrossthe cleaning surface 10 during a cleaning routine. The robot 100 mayrespond to events (e.g., obstacles, cliffs, walls) detected by thebumper 130 by controlling the wheel modules 120 a, 120 b to maneuver therobot 100 in response to the event (e.g., away from an obstacle). Whilesome sensors are described herein as being arranged on the bumper 130,these sensors can additionally or alternatively be arranged at any ofvarious different positions on the robot 100.

In some implementations, the bumper 130 includes a bumper frame 131supported by the robot body 110 and defining a shape complimentary of afront periphery of the robot body 110. A obstacle sensor system 400,disposed on the bumper frame 131, includes a bumper controller 450,e.g., a multiplexing and serializing auxiliary circuit board thatincludes a computing processor 452 (e.g., microcontroller) and memory454, such as a non-transitory memory. The computing processor 452 iscapable of executing instructions stored on the memory 454. Theauxiliary circuit board 450 receives sensor signals from bumper sensors410 disposed on the bumper 130 (e.g., on the bumper frame 131 or bumperhousing 133) and communicates (e.g., via serial communication) with arobot controller 150 (e.g., a main circuit board) carried by the body110. For example, the auxiliary circuit board 450 receives sensorsignals from the bumper sensors 410, processes sensor data andcommunicates a data packet 455 (FIG. 10) to the robot controller 150(i.e. main circuit board) with sensor states. A bumper housing 133having first and second portions 133 a, 133 b (e.g., which may connecttogether) may house the frame 131 and the obstacle sensor system 400.The bumper housing 133 may seal (e.g., hermetically) the obstacle sensorsystem 400 therein to avoid electrical shorts and damage that may resultfrom fluid infiltration.

As shown in FIGS. 5 and 7, in some implementations, the bumper housing133 is a unified encasement including two or more mating concavereceptacles, for example the first and second portions 133 a, 133 b. Thetwo or more mating concave receptacles 133 a, 133 b mate along a closedrim 1133 that includes a seal, such as a gasket (not shown), along thatrim 1133 to enclose the frame 131 and all elements disposed thereon. Therim 1133 is the juncture between a first rim portion 1133 a of the firstmating concave receptacle 133 a and a second rim portion 1133 b of thesecond mating concave receptacle 133 b. In some examples, the bumperhousing 133 is a monocoque enclosure for the frame 131 and all elementsdisposed thereon, such as an array of sensors 410 and bumper controller450 (also referred to as a remote or auxiliary circuit board). Thebumper housing 133 seals therein the bumper sensors 410, such as anarray of proximity sensors 410, and the auxiliary circuit board 450. Thebumper housing 133 includes a single sealed aperture 485 through which acommunication line 480 exits from the auxiliary circuit board 450 tomate with a main circuit board of the robot 150. In some examples, thebumper housing 133 is made from infrared (IR) transparent and visiblelight-blocking plastic.

In some implementations, the single sealed aperture 485 defines an arealess than one hundredth of the surface area of the bumper housing 133defined by the mating concave receptacles 133 a, 133 b. The singlesealed aperture 485 may be an orifice defining area of less than onesquare centimeter.

The bumper housing 133 has a Japanese Industrial Standard (JIS) waterresistance rating of 3 or more. The JIS rating scale for product waterresistance is a ratings scale that uses “0” to “8” to define the levelof water ingress protection built into a product. The various JISclasses are defined according to the following definitions:

JIS “0”—No special protection

JIS “1”—Vertically dripping water shall have no harmful effect (Dripresistant 1)

JIS “2”—Dripping water at an angle up to 15 degrees from vertical shallhave no harmful effect (Drip resistant 2)

JIS “3”—Falling rain at an angle up to 60 degrees from vertical shallhave no harmful effect (Rain resistant)

JIS “4”—Splashing water from any direction shall have no harmful effect(Splash resistant)

JIS “5”—Direct jetting water from any direction shall have no harmfuleffect (Jet resistant)

JIS “6”—Direct jetting water from any direction shall not enter theenclosure (Water tight)

JIS “7”—Water shall not enter the enclosure when it is immersed in waterunder defined conditions (Immersion resistant)

JIS “8”—The equipment is usable for continuous submersion in water underspecified pressure (Submersible)

Referring also to FIGS. 8A-8D, the obstacle sensor system 400 mayinclude one or more proximity sensors 410 disposed on the bumper 130 fordetecting nearby obstacles (e.g., an array of proximity sensors 410distributed along the bumper frame 131). In some implementations, thearray of proximity sensors 410 includes at least four proximity sensors.The proximity sensors 410 may be converging infrared (IR) emitter-sensorelements, sonar sensors, ultrasonic sensors, and/or imaging sensors(e.g., 3D volumetric point cloud image sensors) that provide a signal tothe auxiliary circuit board 450 when an object or obstacle is within agiven range of the robot 100. In some implementations, each proximitysensor 410 includes a housing 412 that holds an optical emitter 414 anda photon detector 416 both facing away from the robot 100 and angledtoward each other to have converging emission 415 and detection fields417, respectively. In some examples, the emitter 414 and the detector416 are arranged to have angle β of between 40 and 60 degrees (e.g., 50degrees) therebetween, such that their corresponding emission anddetection fields 415, 417 converge or overlap. In the example shown inFIG. 8C, the housing 412 is configured to shape the emission anddetection fields 415, 417, such that both fields have a 10 degree spreadoff center on one side (e.g. on an outer portion) and a 25-30 degreespread off center on the other side (e.g., on an inner portion).Moreover, each proximity sensor 410 may have at least two wires 413collected in at least one wire collector 401, which connects to theauxiliary circuit board 450. In some implementations, the wire collector401 is a wire harness, a flexible circuit board, or a ribbon cable. Inthe example shown in FIG. 8A, the wire collector 401 is a wire harnessthat connects to the auxiliary circuit board 450 at a connector 402. Theobstacle sensor system 400 also includes a serial communication line 480connecting the auxiliary circuit board 450 to the main circuit board150. The communication line 480 includes fewer than half the quantity,or number count, of wires 413 connecting the array proximity sensors 410to the auxiliary circuit board 450.

Referring again to FIGS. 1-7, in the examples shown, the obstacle sensorsystem 400 includes an array of wall proximity sensors 410 a (e.g., 10wall proximity sensors 410 a) arranged evenly in the bumper frame 131along a forward perimeter of the bumper 130 and directed outwardsubstantially parallel with the floor surface 10 for detecting nearbywalls. The obstacle sensor system 400 may also include one or an arrayof cliff proximity sensors 410 b (e.g., four cliff proximity sensors 410b) arranged to detect when the robot 100 encounters a falling edge ofthe floor 10, such as when it encounters a set of stairs. The cliffproximity sensor(s) 410 b can point downward and be located on a lowerportion 132 of the bumper 130 near a leading edge 136 of the bumper 130and/or in front of one of the drive wheels 124 a, 124 b. The opticalemitter 414 generates an optical signal toward the floor surface 10. Theoptical signal reflects off of the floor surface 10 back toward and isdetected by the photon detector 416. The bumper frame 131 or bumperhousing 133 may receive and hold the proximity sensor housing 412 in aparticular orientation (e.g., to direct the proximity sensor downwardtoward the floor or outward to detect a wall). In some implementations,the bumper housing 133 defines the proximity sensor housing 412 as anintegral member.

In some cases, cliff and/or wall sensing is implemented using infrared(IR) proximity or actual range sensing, using an infrared emitter 414and an infrared detector 416 angled toward each other so as to have anoverlapping emission and detection fields, and hence a detection zone,at a location where a floor should be expected. IR proximity sensing canhave a relatively narrow field of view, may depend on surface albedo forreliability, and can have varying range accuracy from surface tosurface. As a result, multiple discrete cliff proximity sensors 410 bcan be placed about the perimeter of the robot 100 to adequately detectcliffs from multiple points on the robot 100.

Each proximity sensor 410, 410 a-b may modulate the optical emitter 414at a frequency of several kilohertz and detects any signal tuned to thatfrequency using the photon detector 416. When the photon detector 416fails to output a detection signal, the expected target surface is notpresent and no overlap is detected. In response, the auxiliary circuitboard 450 may send a data packet 455 indicating detection of a wall or acliff to the robot control 150, which can execute an avoidance algorithmcausing the robot 100 to avoid the detected the wall or cliff. When areflected optical signal is detected, processing continues.

In some implementations, the cliff proximity sensors 410 b detect stasisof the robot 100. For example, the robot controller 150 may execute acommand that causes the robot 100 to move back and forth in a wigglemotion along the floor surface 10. Without substantial interference fromother components of the robot 100, each cliff proximity sensor 410 b maydetect small variations in the reflected optical signal that correspondto variations in the floor surface 10 as the robot 100 moves thereon(e.g., in a straight line motion, in a turning motion, in a wigglemotion). The auxiliary circuit board 450 and/or the robot controller 150may determine a stasis or stuck condition when detecting an absence ofvariations in the reflected optical signal off of the floor surface 10.

Right and left cliff proximity sensors 410 br, 410 bl disposed on thebumper 130 and arranged substantially forward of and substantiallyaligned with the right and left drive wheels 124 a, 124 b, respectively,can allow the robot 100 to travel at relatively high rates of forwardspeed (e.g., about 200 mm/s to about 400 mm/s) while allowing the robot100 sufficient time to detect a cliff event and successfully respond tothe detected cliff event (e.g., overcoming the forces of forwardmomentum to stop before one or more wheels 124 a, 124 b goes over thecliff).

The proximity sensors 410 may function alone, or as an alternative, mayfunction in combination with one or more contact sensors 420 (e.g., bumpswitches) for redundancy. For example, one or more contact or bumpsensors 420 on the robot body 110 can detect if the robot 100 physicallyencounters an obstacle. Such contact sensors 420 may use a physicalproperty such as capacitance or physical displacement within the robot100 to determine when it has encountered an obstacle. In the exampleshown, contact sensors 420 detect movement of the bumper 130 withrespect to the robot body 110. In some examples, the contact sensors 420are rotatably mounted to the bumper 130 and include a Hall Effect sensorfor detecting movement resulting from the bumper 130 contacting anobject.

Referring to FIG. 7, the bumper 130 may include right and left contactsensors 420 r, 420 l disposed on respective right and left portions 130r, 130 l of the bumper 130 for sensing bumps/contact with obstacles andfor determining an angle of incidence with respect to the drivedirection F and/or an orientation of the robot 100 with respect to theobstacle. For example, if the right contact sensor 420 r detects a bump,while the left contact sensor 420 l does not, then the robot controller150 can determine that the robot 100 drove into an obstacle on its rightside and vice-versa. If both contact sensors 420 r, 420 l provide a bumpsignal to the robot controller 150, or main circuit board, then theauxiliary circuit board 150 can determine that the robot 100 drove intoan obstacle along the forward drive direction F. Although two contactsensors 420 r, 420 l are shown, any number of bump sensors 420 can beused.

In some implementations, the contact sensors 420 r, 420 l communicatewith the auxiliary circuit board 450, which in turn communicates withthe robot controller 150 via a bumper communication line 480 andconnector 486. The communication connector 486 may be disposed on thebumper housing 133 or on the robot controller 150 and hermeticallysealed therewith. The auxiliary circuit board 450 may execute a bumpalgorithm that determines a location, direction with respect to theforward drive direction, and/or other bump parameters in response toreceiving sensor signals from any of the contact sensors 420 r, 420 l.

Referring to FIGS. 4-7, 9A and 9B, the obstacle sensor system 400 mayinclude one or more confinement sensors 430 disposed on the bumper 130.The confinement sensor 430 may be an optical (e.g., infrared) sensorhaving a horizontal field of view 432 (e.g., between 45° and 270°)directed by optics. The controller 150 may receive sensor signals frommultiple confinement sensors 430 to simulate one sensor. Moreover, thecontroller 150 may determine a directionally of a detected infrared beamusing multiple confinement sensors 430.

In the example shown in FIG. 9A, the bumper 130 includes a singleconfinement sensors 430 disposed on an upper portion 134 of the bumper130. The confinement sensor 430 may have a field of view 432 of between30 and 360 degrees, based on the placement of the confinement sensor 430(e.g., the field of view 432 is blocked by a portion of the robot body110) or due to the operating parameters of the sensor. For a field ofview 432 a less than 360 degrees, the confinement sensor 430 may bearranged to have a blind spot area 434 directly behind the robot 100.

In the example shown in FIG. 9B, the bumper 130 includes first, second,and third confinement sensors 430 a-c disposed on an upper portion 134of the bumper 130. The first confinement sensor 430 a aims forward alongthe forward drive direction F, the second confinement sensor 430 b aimsalong the right direction R, and third confinement sensor 430 c aimsalong the left direction L. As a result, the fields of view 432 a-c ofthe first, second and third confinement sensors 430 a-c may overlap,providing redundant sensing. In the example shown, the fields of view432 a-c of the first, second and third confinement sensors 430 a-coverlap along the forward drive direction F to provide redundant sensingalong that direction, so as to reduce any probability of accidentallycolliding with an object/obstacle or falling off a cliff edge. In someexamples, the first field of view 432 a of the first confinement sensor430 a may be centered on the forward drive direction F with the secondand third fields of view 432 b-c of the second and third confinementsensors 430 b-c overlapping by an angle θ of between 10° and 60° (e.g.,about 30°) over the first field of view 432 a, along the forward drivedirection F. The second and third fields of view 432 b-c of the secondand third confinement sensors 430 b-c may be arranged to view behind therobot 100 (i.e., opposite the forward drive direction F), whileoptionally not covering a blind spot area 434 directly behind the robot100. Arranging at least one field of view 432 a-c to view rearwardallows the robot 100 to maneuver while not crossing over at a narrowangle an emitted beam signifying a virtual wall or an approach beamemitted by a docking station.

Placement of the confinement sensor(s) 430, 430 a-c on the bumper 130(e.g., along a periphery 113 of the robot body 110) versus in a centralportion 113 of the robot body 110 allows the robot 110 to detect virtualwall infrared beams (emitted by a beacon) proximate the periphery 113 ofthe robot body 110 while turning. Placement of a confinement sensor 430on the central portion 113 the robot body 110 may require elevation ofthat sensor 430 with respect to the periphery 115 of the robot body, sothat the confinement sensor 430 can detect an infrared beam proximatethe periphery 113 of the robot body. Therefore, placement of theconfinement sensor(s) 430, 430 a-c on the bumper 130 (e.g., along aperiphery 113 of the robot body 110) allows for a relatively loweroverall height of the robot 100 and reduces the chances of obstaclessnagging on any projections of the robot body 110.

The auxiliary circuit board 450 can poll the bumper sensors 410, 410 a,410 b, 420 to receive respective sensor signals and execute sensor dataprocessing, such as analog-to-digital conversion, filtering, andpackaging of the converted and/or conditioned sensor signals into a datapacket recognizable by the robot controller 150. Rather than having manywires extending between the bumper sensors 410, 410 a, 410 b, 420 andthe robot controller 150, the auxiliary circuit board 450 provides asingle communication line 480 (e.g., a serial line) for the obstaclesensor system 400 to the robot controller 150. The communication line480 may have a first seal 482 sealing a connection with the auxiliarycircuit board 450 (e.g., a printed circuit board) and/or a second seal484 sealing its exit from the bumper housing 133 through a singleorifice 485, to prevent water intrusion. In some implementations, thebumper 130 includes a connector 486 inserted through the orifice 485 andhermetically sealed with the bumper frame 131 or bumper housing 133 toprevent water intrusion.

Referring to FIGS. 4 and 6, the communication line 480 mated with thecommunication connector 486 reduces wire density on the robot 100 byreducing the number of wires extending between the bumper 130 and therobot 100. This configuration eliminates movement of many wires betweenthe bumper 130 and the robot 100 and therefore reduces a likelihood ofwire fatigue of those wires. This configuration is further enabled bythe dedicated auxiliary circuit board 450. The auxiliary circuit board450 processes relatively large amounts of sensor signal data and returnsa data packet 455 to the robot controller 150 with the sensor states.This additional processing capacity thereby reduces the number ofconnections between the sensors 410 and corresponding wires in thebumper 130 and the robot controller 150 and further relieves theprocessing capacity of the robot controller 150 for other tasks. Becauseof this additional processing capacity by the auxiliary circuit board450 mounted within the bumper 130, the dedicated auxiliary circuit board450 further enables upgrade-ability of the bumper 130 to incorporateadditional sensors 410 without reconfiguring the robot 100 or overtaxingthe processing capacity of the robot controller 150. The obstacle sensorsystem 400 can act as a standalone modular sensor system thatcommunicates with the robot controller 150 as a plug-n-play component.

Referring to FIGS. 8A-8F and 10A-10C, in some implementations, thebumper 130 includes a bumper frame 131 defining a shape complimentary ofa front periphery of the robot body 110, and an array of proximitysensors 410 distributed along the bumper frame 131. Each proximitysensor 410 has an infrared emitter 414 and an infrared detector 416spaced apart and arranged to have converging corresponding emission anddetection fields 415, 417. Moreover, each proximity sensor 410 has asensor length S defined between the infrared emitter 414 and theinfrared detector 416. The cumulative total of individual sensor lengthsS in the array is greater than a length AL (shown in dashed line in FIG.8D) of the array of proximity sensors 410 taken along the frontperiphery of the mobile robot of the bumper frame 131. Each proximitysensor 410 in the array corresponds to a predetermined proximity sensorposition along the front periphery of the mobile robot 100. As such theproximity sensors 410 are arranged in a stacked or verticallyoverlapping configuration on the bumper frame 131 such the proximitysensors 410 are staggered like laid bricks between the layers of thestack. In some examples, the sensor length S is between 20-50 mm (e.g.,36 mm). In some implementations, at least some of the proximity sensors410 in the array overlap one another along the front periphery of themobile robot 100.

In some implementations, one of the infrared emitter 414 and theinfrared detector 416 of each proximity sensor 410 is positionedvertically, with respect to a floor surface 10 supporting the robot 100,between the infrared emitter 414 and the infrared detector 416 ofanother proximity sensor 410. In some examples, the bumper frame 131defines an arc having a center point C, and the proximity sensors 410are arranged to have a spacing α of between 5 and 20 degrees betweenmidpoints of the sensor lengths S of adjacent proximity sensors 410. Theproximity sensors 410 may be arranged to have a spacing of 12 degreesbetween midpoints M of the sensor lengths S of adjacent proximitysensors 410. Moreover, the proximity sensors 410 may be spaced along thebumper frame 131 equidistantly or unevenly between midpoints M of thesensor lengths S of adjacent proximity sensors 410.

The array of proximity sensors 410 may include a first sensor array 4102of proximity sensors 410 and a second sensor array 4104 of proximitysensors disposed vertically below the first sensor array 4102 on thebumper frame 131 with respect to a floor surface 10 supporting the robot100. One of the infrared emitter 414 and the infrared detector 416 of aproximity sensor 410 in the first sensor array 4102 may be verticallyaligned, with respect to the floor surface, with one of the infraredemitter 414 and the infrared detector 416 of a proximity sensor 410 inthe second sensor array 4104. In the example shown, the first and secondsensor arrays 4102, 4104 are arranged in stacked evenly horizontallyoffset configuration; however, other arrangements are possible as well,such as uneven distributions having local collections in variouslocations along the bumper frame 131. The proximity sensors 410 of thefirst and second sensor arrays 4102, 4104 may be wall proximity sensors410 a disposed evenly along a forward perimeter of the bumper frame 131.Each wall proximity sensor 410 a is directed outward substantiallyparallel to the floor surface 10. The auxiliary circuit board 450 maytrigger the emitters 414 at time timed intervals, such that the emitters414 of the first sensor array 4102 emit infrared light at time intervalsdifferent than the emitters 414 of the second sensor array 4104.Moreover, the auxiliary circuit board 450 may trigger the detectors 416to sense light emissions in concert with the emitters of theirrespective sensor array 4102, 4104. This prevents light emissions of onesensor array 4102, 4104 from interfering with detection of lightemissions of another sensor array 4102, 4104. In some examples, theproximity sensors 410 of the first sensor array 4102 are modulateddifferently (e.g., by phase, wavelength, or frequency) than theproximity sensors 410 of the second array 4104.

In some implementations, the first sensor array 4102 includes three ormore proximity sensors 410 of a first sensor type and the second sensorarray 4104 includes three or more sensors of a second sensor typedistinct from the first sensor type. The first sensor array 4102 may bedisposed vertically above the second sensor array 4104 on the bumperframe 131. The first and second sensor types may be for example, but notlimited to, contact sensors, proximity sensors, cliff sensors, lasers,sonar, and cameras.

The obstacle sensor system may include a third sensor array 4106 ofproximity sensors 410 arranged vertically below the first and secondsensor arrays 4102, 4104. The proximity sensors 410 of the third sensorarray 4106 may be cliff proximity sensors 410 b distributed along thebumper frame 131 and disposed forward of wheels 124 a, 124 b of thedrive system 120. Each cliff proximity sensor 410 b is directed downwardat the floor surface 10 for detecting a falling edge of the floorsurface 10. Moreover, each cliff proximity sensor 410 b has at least twowires 413 collected in at least one wire collector 401, which isconnected to the auxiliary circuit board 450 at a connector 402.

Each proximity sensors 410 of each sensor array 4102, 47104, 4106 mayhave at least two wires 413 that connect to the auxiliary circuit board450 e.g., via one or more wire collectors 401. The auxiliary circuitboard 450 may provide a multiplexing function by receiving sensorsignals from all or most of the sensors 410 on the bumper 130 and thenprocess the received signals to deliver one or more output signals(e.g., a serialized signal) to the robot controller 150 (main circuitboard) through a single communication line 480. The communication line480 may include fewer than half the number of wires 413 connecting thearray proximity sensors 410 to the auxiliary circuit board 450, therebysignificantly reducing the number of wires 413 which would otherwiseneed to connect to the robot control 150 without the auxiliary circuitboard 450. The communication line 480 may provide a single communicationpathway between the auxiliary circuit board 450 on the bumper 130 andthe robot controller 150, as shown in FIG. 10B. This simplifies assemblyof the robot 100 and reduces the number of wires 413 that may experiencewire fatigue due to movement between the bumper 130 and the robot body110.

FIGS. 11A and 11B illustrate a configuration of a bumper 130 having anon-stacked arrangement of proximity sensors 410 along the bumper frame131. The obstacle sensor system 400 may an array of wall proximitysensors 410 a disposed evenly along a forward perimeter of the bumperframe 131 and directed outward substantially parallel to the floorsurface 10. Each proximity sensor 410 has at least two wires 413collected in at least one wire collector 401, which is a wire harnessconnected to the auxiliary circuit board 450 at a connector 402. In someexamples, the wire collector 401 is a wire harness, a flexible circuitboard or a ribbon cable. The low profile bumper frame 131 allows for arelatively smaller bumper 130. The bumper frame 131 supports theauxiliary circuit board 450, which receives sensors signals from thesensors 410 disposed on the bumper frame 131, and optionally the bumperhousing 133 (not shown). The bumper frame 131 is configured to hold orsecure the wires 413 of the sensors 410 disposed thereon and route thewires 413 to the auxiliary circuit board 450, which processes sensorsignals received from the connected sensors 410. A single communicationline 480 connects the auxiliary circuit board 450 to the robotcontroller 150.

FIGS. 8D-8F illustrate the emission fields 415 of the emitters 414 ofthe proximity sensors 410 on the bumper 130 around round chair legs andsquare chair legs, respectively. The staggered first and second sensorarrays 4102, 4104 (e.g., vertically overlapping) provide relativelydenser coverage than single non-staggered sensor arrays, as shown inFIGS. 11A and 11B. A single sensor array 4102 may include only 5 or 6proximity sensors 410 distributed side-by-side along the bumper frame131. The non-overlapping sensor arrangement could lead to a miss on achair leg, causing the robot 100 to not detect and collide with thechair leg. The denser emission fields 415 of the staggered proximitysensor arrays 4102, 4104 (e.g., as shown in FIGS. 10A-10C) solves thisproblem by filling in the gaps between the peaks and valleys of thesensor detection fields. The first and second sensor arrays 4102, 4104may be arranged to have a proximity sensor spacing α of about 12degrees.

Referring to FIGS. 1 and 4, a user interface 140 disposed on a topportion of the body 110 receives one or more user commands and/ordisplays a status of the robot 100. The user interface 140 is incommunication with the robot controller 150 carried by the robot 100such that one or more commands received by the user interface 140 caninitiate execution of a cleaning routine by the robot 100.

The robot controller 150 (executing a control system) may executebehaviors that cause the robot 100 to take an action, such asmaneuvering in a wall following manner, a floor scrubbing manner, orchanging its direction of travel when an obstacle is detected (e.g., bythe obstacle sensor system 400). The robot controller 150 can maneuverthe robot 100 in any direction across the cleaning surface 10 byindependently controlling the rotational speed and direction of eachwheel module 120 a, 120 b. For example, the robot controller 150 canmaneuver the robot 100 in the forward F, reverse (aft) A, right R, andleft L directions. As the robot 100 moves substantially along thefore-aft axis Y, the robot 100 can make repeated alternating right andleft turns such that the robot 100 rotates back and forth around thecenter vertical axis Z (hereinafter referred to as a wiggle motion). Thewiggle motion can allow the robot 100 to operate as a scrubber duringcleaning operation. Moreover, the wiggle motion can be used by the robotcontroller 150 to detect robot stasis. Additionally or alternatively,the robot controller 150 can maneuver the robot 100 to rotatesubstantially in place such that the robot 100 can maneuver out of acorner or away from an obstacle, for example. The robot controller 150may direct the robot 100 over a substantially random (e.g.,pseudo-random) path while traversing the cleaning surface 10. The robotcontroller 150 can be responsive to one or more sensors (e.g., bump,proximity, wall, stasis, and cliff sensors) disposed about the robot100. The robot controller 150 can redirect the wheel modules 120 a, 120b in response to signals received from the sensors, causing the robot100 to avoid obstacles and clutter while treating the cleaning surface10. If the robot 100 becomes stuck or entangled during use, the robotcontroller 150 may direct the wheel modules 120 a, 120 b through aseries of escape behaviors so that the robot 100 can escape and resumenormal cleaning operations.

Referring to FIGS. 4, 12 and 13, to achieve reliable and robustautonomous movement, the robot 100 may include a sensor system 500having several different types of sensors which can be used inconjunction with one another to create a perception of the robot'senvironment sufficient to allow the robot 100 to make intelligentdecisions about actions to take in that environment. The sensor system500 may include one or more types of sensors supported by the robot body110, which may include obstacle detection obstacle avoidance (ODOA)sensors, communication sensors, navigation sensors, etc. For example,these sensors may include, but not limited to, proximity sensors,contact sensors, a camera (e.g., volumetric point cloud imaging,three-dimensional (3D) imaging or depth map sensors, visible lightcamera and/or infrared camera), sonar, radar, LIDAR (Light Detection AndRanging, which can entail optical auxiliary sensing that measuresproperties of scattered light to find range and/or other information ofa distant target), LADAR (Laser Detection and Ranging), etc. In someimplementations, the sensor system 500 includes ranging sonar sensors,proximity cliff detectors, contact sensors, a laser scanner, and/or animaging sonar.

There are several challenges involved in placing sensors on a roboticplatform. First, the sensors need to be placed such that they havemaximum coverage of areas of interest around the robot 100. Second, thesensors may need to be placed in such a way that the robot 100 itselfcauses an absolute minimum of occlusion to the sensors; in essence, thesensors cannot be placed such that they are “blinded” by the robotitself. Third, the placement and mounting of the sensors should not beintrusive to the rest of the industrial design of the platform. In termsof aesthetics, it can be assumed that a robot with sensors mountedinconspicuously is more “attractive” than otherwise. In terms ofutility, sensors should be mounted in a manner so as not to interferewith normal robot operation (snagging on obstacles, etc.).

In some implementations, the sensor system 500 includes the obstaclesensor system 400, which may have one or more proximity sensors 410 andbump or contact sensor 420 in communication with the robot controller150 and arranged in one or more zones or portions of the robot 100(e.g., disposed around a perimeter of the robot body 110) for detectingany nearby or intruding obstacles. The proximity sensors may beconverging infrared (IR) emitter-sensor elements, sonar sensors,ultrasonic sensors, and/or imaging sensors (e.g., 3D depth map imagesensors) that provide a signal to the controller 150 when an object iswithin a given range of the robot 100. Moreover, one or more of theproximity sensors 410 can be arranged to detect when the robot 100 hasencountered a falling edge of the floor, such as when it encounters aset of stairs. For example, a cliff proximity sensor 410 b can belocated at or near the leading end and the trailing end of the robotbody 110. The robot controller 150 (executing a control system) mayexecute behaviors that cause the robot 100 to take an action, such aschanging its direction of travel, when an edge is detected.

The sensor system 500 may include a laser scanner 460 (FIG. 12) mountedon a forward portion of the robot body 110 (e.g., having a field of viewalong the forward drive direction F) and in communication with the robotcontroller 150. In the example shown in FIGS. 4 and 6, the laser scanner460 is mounted on the bumper 130 as part of the obstacle sensor system400. Having the laser scanner 460 on the bumper 130 behind a shroudallows a forward field of view while reducing snagging on obstacles ascompared to an external mounting on top of the robot 100. The laserscanner 460 may scan an area about the robot 100 and the robotcontroller 150, using signals received from the laser scanner 460, maycreate an environment map or object map of the scanned area. The robotcontroller 150 may use the object map for navigation, obstacledetection, and obstacle avoidance. Moreover, the robot controller 150may use sensory inputs from other sensors of the sensor system 500 forcreating object map and/or for navigation.

In some examples, the laser scanner 460 is a scanning LIDAR, which mayuse a laser that quickly scans an area in one dimension, as a “main”scan line, and a time-of-flight imaging element that uses a phasedifference or similar technique to assign a depth to each pixelgenerated in the line (returning a two dimensional depth line in theplane of scanning). In order to generate a three dimensional map, theLIDAR can perform an “auxiliary” scan in a second direction (forexample, by “nodding” the scanner). This mechanical scanning techniquecan be complemented, if not supplemented, by technologies such as the“Flash” LIDAR/LADAR and “Swiss Ranger” type focal plane imaging elementsensors, techniques which use semiconductor stacks to permit time offlight calculations for a full 2-D matrix of pixels to provide a depthat each pixel, or even a series of depths at each pixel (with an encodedilluminator or illuminating laser).

The sensor system 500 may include one or more three-dimensional (3-D)image sensors 470 (e.g., a volumetric point cloud imaging device)mounted on the robot body 110 or bumper 130 and in communication withthe robot controller 150. In the example shown in FIGS. 6 and 9, the 3-Dimage sensor is mounted on the bumper 130 with a forward field of view.If the 3-D image sensor 470 has a limited field of view, the robotcontroller 150 or the sensor system 500 may, in some implementations,actuate the 3-D image sensor in a side-to-side scanning manner to createa relatively wider field of view to perform robust ODOA.

In some implementations, the sensor system 500 includes an inertialmeasurement unit (IMU) 510 (FIG. 4) in communication with the robotcontroller 150 to measure and monitor a moment of inertia of the robot100. The robot controller 150 may monitor any deviation in feedback fromthe IMU 510 from a threshold signal corresponding to normal unencumberedoperation. For example, if the robot 100 begins to fall over a cliff, islifted off the floor 10 or is otherwise impeded, the robot controller150 may determine it necessary to take urgent action (including, but notlimited to, evasive maneuvers, recalibration, and/or issuing anaudio/visual warning) in order to assure safe operation of the robot100.

Referring to FIGS. 13 and 14, in some implementations, the robot 100includes a navigation system 600 configured to allow the robot 100 todeposit cleaning liquid on a surface and subsequently return to collectthe cleaning liquid from the surface through multiple passes. Ascompared to a single-pass configuration, the multi-pass configurationallows cleaning liquid to be left on the surface for a longer period oftime while the robot 100 travels at a higher rate of speed. Thenavigation system allows the robot 100 to return to positions where thecleaning fluid has been deposited on the surface but not yet collected.The navigation system can maneuver the robot 100 in a pseudo-randompattern across the floor surface 10 such that the robot 100 is likely toreturn to the portion of the floor surface 10 upon which cleaning fluidhas remained.

The navigation system 600 may be a behavior based system stored and/orexecuted on the robot controller 150. The navigation system 600 maycommunicate with the sensor system 500 to determine and issue drivecommands to the drive system 120.

Referring to FIG. 14, in some implementations, the controller 150 (e.g.,a device having one or more computing processors in communication withmemory capable of storing instructions executable on the computingprocessor(s)) executes a control system 210, which includes a behaviorsystem 210 a and a control arbitration system 210 b in communicationwith each other. The control arbitration system 210 b allows robotapplications 220 to be dynamically added and removed from the controlsystem 210, and facilitates allowing applications 220 to each controlthe robot 100 without needing to know about any other applications 220.In other words, the control arbitration system 210 b provides a simpleprioritized control mechanism between applications 220 and resources 240of the robot 100.

The applications 220 can be stored in memory of or communicated to therobot 100, to run concurrently on (e.g., on a processor) andsimultaneously control the robot 100. The applications 220 may accessbehaviors 300 of the behavior system 210 a. The independently deployedapplications 220 are combined dynamically at runtime and to share robotresources 240 (e.g., drive system 120 and/or cleaning systems 160, 190).A low-level policy is implemented for dynamically sharing the robotresources 240 among the applications 220 at run-time. The policydetermines which application 220 has control of the robot resources 240as required by that application 220 (e.g. a priority hierarchy among theapplications 220). Applications 220 can start and stop dynamically andrun completely independently of each other. The control system 210 alsoallows for complex behaviors 300 which can be combined together toassist each other.

The control arbitration system 210 b includes one or more application(s)220 in communication with a control arbiter 260. The control arbitrationsystem 210 b may include components that provide an interface to thecontrol arbitration system 210 b for the applications 220. Suchcomponents may abstract and encapsulate away the complexities ofauthentication, distributed resource control arbiters, commandbuffering, coordinate the prioritization of the applications 220 and thelike. The control arbiter 260 receives commands from every application220 generates a single command based on the applications' priorities andpublishes it for its associated resources 240. The control arbiter 260receives state feedback from its associated resources 240 and may sendit back up to the applications 220. The robot resources 240 may be anetwork of functional modules (e.g., actuators, drive systems, andgroups thereof) with one or more hardware controllers. The commands ofthe control arbiter 260 are specific to the resource 240 to carry outspecific actions. A dynamics model 230 executable on the controller 150is configured to compute the center for gravity (CG), moments ofinertia, and cross products of inertial of various portions of the robot100 for the assessing a current robot state.

In some implementations, a behavior 300 is a plug-in component thatprovides a hierarchical, state-full evaluation function that couplessensory feedback from multiple sources, such as the sensor system 500,with a-priori limits and information into evaluation feedback on theallowable actions of the robot 100. Since the behaviors 300 arepluggable into the application 220 (e.g. residing inside or outside ofthe application 220), they can be removed and added without having tomodify the application 220 or any other part of the control system 210.Each behavior 300 is a standalone policy. To make behaviors 300 morepowerful, it is possible to attach the output of multiple behaviors 300together into the input of another so that you can have complexcombination functions. The behaviors 300 are intended to implementmanageable portions of the total cognizance of the robot 100.

In the example shown, the behavior system 210 a includes an obstacledetection/obstacle avoidance (ODOA) behavior 300 a for determiningresponsive robot actions based on obstacles perceived by the sensor(e.g., turn away; turn around; stop before the obstacle, etc.). Anotherbehavior 300 may include a wall following behavior 300 b for drivingadjacent a detected wall (e.g., in a wiggle pattern of driving towardand away from the wall). Another behavior 300 may include a doorwaytraversal behavior 300 c for detecting a doorway between adjacent roomsand migrating between the two rooms. A spot cleaning behavior 300 d maycause the robot 100 to drive in a spiraling pattern about a locationdetected as having a threshold level of dirt, fluid or debris.

FIG. 15 provides an exemplary arrangement of operations for a method1500 of operating a mobile robot 100 having a bumper 130. The methodincludes receiving 1502 sensor signals in a bumper controller 450, orauxiliary circuit board, from one or more sensors 410, 420, 430 disposedon the bumper 130, processing 1504 the received sensor signals on theauxiliary circuit board 450, and communicating 1506 a sensor event basedon the processed sensor signals from the auxiliary circuit board 450 tothe robot controller 150.

In some implementations, the method includes receiving sensor signalsfrom at least one of a contact sensor 420 disposed on the bumper 130, aproximity sensor 410 disposed on the bumper 130, or a camera 470disposed on the bumper 130. The processing of the received sensorsignals may include at least one of analog-to-digital conversion, signalfiltering, or signal conditioning. The method may include communicatingthe sensor event from the auxiliary circuit board 450 to the robotcontroller 150 over a single communication pathway 480, 486, which maybe sealed against fluid infiltration. In some examples, thecommunication pathway 480 is a single multi-channel line 480 and/or aconnector 486 of the bumper 130.

The method may include executing a mapping routing on the robotcontroller 150 in response to the received sensor event from theauxiliary circuit board 450 for determining a local sensory perceptionof an environment about the robot 100. The mapping routine may classifythe local perceptual space into three categories: obstacles, unknown,and known free. Obstacles may be observed (i.e., sensed) points abovethe ground that are below a height of the robot 100 and observed pointsbelow the ground (e.g., holes, steps down, etc.). Known free correspondsto areas where the sensor system 500 can identify the ground. Data fromall sensors in the sensor system 500 can be combined into a discretized3-D voxel grid. The 3-D grid can then be analyzed and converted into a2-D grid with the three local perceptual space classifications. Theinformation in the 3-D voxel grid may have persistence, but decays overtime if it is not reinforced. When the robot 100 is moving, it has moreknown free area to navigate in because of persistence. The method mayinclude issuing a drive command from the robot controller 150 to thedrive system 120 based on a result of the executed mapping routine.

In some examples, the method includes executing a control system 210 onthe robot controller 150. The control system 210 includes a controlarbitration system 210 b and a behavior system 210 a in communicationwith each other. The behavior system 210 a executes at least onebehavior 300 that influences execution of commands by the controlarbitration system 210 b based on sensor events received from theauxiliary circuit board 450. Moreover, the at least one behavior 300 mayinfluence execution of commands by the control arbitration system 210 bbased on sensor signals received from the robot sensor system 500.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the disclosure. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A mobile robot comprising: a robot body having aforward drive direction; a drive system supporting the robot body abovea floor surface for maneuvering the robot across the floor surface; amain circuit board in communication with the drive system; a bumperframe defining a shape complementary of a front periphery of the robotbody, the bumper frame supported by the robot body; and an obstaclesensor system disposed on the bumper frame, the obstacle sensor systemcomprising: a multiplexing auxiliary circuit board supported by thebumper frame, the multiplexing auxiliary circuit board including acomputing processor and non-transitory memory, the computing processorcapable of executing instructions stored on the non-transitory memory;an array of proximity sensors distributed along the bumper frame, eachproximity sensor having at least two wires collected in at least onewire collector, the at least one wire collector connected to theauxiliary circuit board, the array of proximity sensors comprising anarray of wall proximity sensors disposed along a forward perimeter ofthe bumper frame, each wall proximity sensor directed outwardsubstantially parallel to the floor surface; and a communication lineconnecting the auxiliary circuit board to the main circuit board, thecommunication line having fewer than half the wires connecting the arrayof proximity sensors to the auxiliary circuit board; wherein themultiplexing auxiliary circuit board is configured to: receive, at thecomputing processor, sensor signals from the array of proximity sensors;process the received sensor signals using the computing processor;package the processed sensor signals into a data packet recognizable bythe main circuit board; and send the data packet from the computingprocessor to the main circuit board.
 2. The robot of claim 1, wherein atleast one proximity sensor comprises a pair of converging infraredemitter-sensor elements, a sonar sensor, an ultrasonic sensor, athree-dimensional volumetric point cloud imaging device, or a contactsensor.
 3. The robot of claim 1, wherein each proximity sensorcomprises: an infrared emitter having an emission field; and an infrareddetector having a detection field; wherein the infrared emitter and theinfrared detector are arranged so that the emission field overlaps withthe detection field.
 4. The robot of claim 1, wherein the obstaclesensor system further comprises an array of cliff proximity sensorsdistributed along the bumper frame and disposed forward of wheels of thedrive system, each cliff proximity sensor directed downward at the floorsurface for detecting a falling edge of the floor surface, each cliffproximity sensor having at least two wires collected in at least onewire collector, the at least one wire collector connected to theauxiliary circuit board.
 5. The robot of claim 1, wherein the obstaclesensor system further comprises at least one optical confinement sensordisposed on the bumper frame and having a horizontal field of view ofbetween 45° and 270° , the at least one optical confinement sensorhaving at least two wires collected in at least one wire collector, theat least one wire collector connected to the auxiliary circuit board. 6.The robot of claim 1, wherein the array of proximity sensors comprisesan array of at least four discrete proximity sensors.
 7. The robot ofclaim 1, wherein the array of proximity sensors comprises: a firstsensor array having three or more proximity sensors of a first sensortype; and a second sensor array having three or more sensors of a secondsensor type distinct from the first sensor type.
 8. The robot of claim7, wherein the first sensor array is disposed vertically above thesecond sensor array on the bumper frame with respect to the floorsurface.
 9. The robot of claim 7, wherein the first sensor array or thesecond sensor array comprises an array of wall proximity sensorsdisposed evenly along a forward perimeter of the bumper frame, each wallproximity sensor directed outward substantially parallel to the floorsurface.
 10. The robot of claim 9, wherein the other sensor array of thefirst sensor array or the second sensor array comprises an array ofcliff proximity sensors distributed along the bumper frame and disposedforward of wheels of the drive system, each cliff proximity sensordirected downward at the floor surface for detecting a falling edge ofthe floor surface, each cliff proximity sensor having at least two wirescollected in at least one wire collector, the at least one wirecollector connected to the auxiliary circuit board.
 11. The robot ofclaim 1, wherein the sensor data processing comprises at least one ofanalog-to-digital conversion, signal filtering, or signal conditioning.12. The robot of claim 1, further comprising a bumper body housing andsealing the bumper frame and the obstacle sensor system against fluidinfiltration, wherein the bumper body defines an orifice sized toreceive the communication line, the communication line having a sealedfit with the orifice.
 13. A mobile robot comprising: a main circuitboard; an array of proximity sensors distributed along a front peripheryof the mobile robot, each proximity sensor including at least oneinfrared emitter and at least one infrared detector, each proximitysensor having a sensor length defined between the infrared emitter andthe infrared detector of the proximity sensor, a cumulative total ofindividual sensor lengths in the array is greater than a length of thearray taken along the front periphery of the mobile robot, and eachproximity sensor in the array corresponding to a predetermined proximitysensor position along the front periphery of the mobile robot; amultiplexing auxiliary circuit board supported by the front periphery ofthe mobile robot, the multiplexing auxiliary circuit board including acomputing processor and non-transitory memory, the computing processorconfigured to: execute instructions stored on the memory; receive sensorsignals from the array of proximity sensors; execute sensor dataprocessing on the received sensor signals; package the processed sensorsignals into a data packet recognizable by the main circuit board; andsend the data packet to the main circuit board; and a communication lineconnecting the auxiliary circuit board to the main circuit board, thecommunication line having fewer than half a number of wires connectingthe array of proximity sensors to the auxiliary circuit board; whereineach proximity sensor has at least two wires collected in at least onewire collector, the at least one wire collector connected to theauxiliary circuit board; and wherein at least some of the proximitysensors in the array overlap one another along the front periphery ofthe mobile robot.
 14. The mobile robot of claim 13 wherein at least oneproximity sensor comprises a pair of converging infrared emitter-sensorelements, a sonar sensor, an ultrasonic sensor, a three-dimensionalvolumetric point cloud imaging device, or a contact sensor.
 15. Themobile robot of claim 13, wherein each proximity sensor comprises: aninfrared emitter having an emission field; and an infrared detectorhaving a detection field; wherein the infrared emitter and the infrareddetector are arranged so that the emission field overlaps with thedetection field.
 16. The mobile robot of claim 13, wherein the array ofproximity sensors comprises an array of at least four discrete proximitysensors.
 17. The mobile robot of claim 13, wherein the array ofproximity sensors comprises: a first sensor array having three or moreproximity sensors of a first sensor type; and a second sensor arrayhaving three or more sensors of a second sensor type distinct from thefirst sensor type.
 18. The mobile robot of claim 17, wherein the firstsensor array is disposed vertically above the second sensor array on thebumper frame with respect to a floor surface supporting the robot.
 19. Amobile robot comprising: a multiplexing auxiliary circuit board; anarray of proximity sensors distributed along a bumper of the mobilerobot, each proximity sensor including at least one infrared emitter andat least one infrared detector, each proximity sensor having at leasttwo wires collected in at least one wire collector, the at least onewire collector connected to the multiplexing auxiliary circuit board;and a communication line connecting the auxiliary circuit board to amain circuit board; wherein the bumper is a unified encasement includingtwo or more mating concave receptacles, the receptacles mating along aclosed rim and sealed along that rim to enclose the array of proximitysensors and the auxiliary circuit board, the unified encasementincluding the communication line exiting through a single sealedaperture; and wherein the multiplexing auxiliary circuit board isconfigured to: receive sensor signals from the array of proximitysensors; execute sensor data processing on the received sensor signals;package the processed sensor signals into a data packet recognizable bythe main circuit board; and send the data packet to the main circuitboard.
 20. The mobile robot of claim 19, wherein the single sealedaperture defines an area less than one hundredth of a surface area ofthe unified encasement defined by the mating concave receptacles. 21.The mobile robot of claim 19, wherein the single sealed aperture is anorifice defining area of less than one square centimeter.
 22. The mobilerobot of claim 19, wherein a unified encasement defined by the matingconcave receptacles has a Japanese Industrial Standard water resistancerating of 3 or more.
 23. The mobile robot of claim 19, wherein theunified encasement is made of infrared transparent and visiblelight-blocking plastic.
 24. The mobile robot of claim 19, wherein themain circuit board is disposed on a main body of the robot and theauxiliary circuit board is disposed on a bumper movably connected to themain body.
 25. A mobile robot comprising: a robot body having a forwarddrive direction; a drive system supporting the robot body above a floorsurface for maneuvering the robot across the floor surface; a maincircuit board in communication with the drive system; a bumper framedefining a shape complementary of a front periphery of the robot body,the bumper frame supported by the robot body; and an obstacle sensorsystem disposed on the bumper frame, the obstacle sensor systemcomprising: a multiplexing auxiliary circuit board supported by thebumper frame, the auxiliary circuit board including a computingprocessor and non-transitory memory, the computing processor capable ofexecuting instructions stored on the memory; an array of proximitysensors distributed along the bumper frame, each proximity sensor havingat least two wires collected in at least one wire collector, the atleast one wire collector connected to the multiplexing auxiliary circuitboard, the array of proximity sensors comprising: a first sensor arrayhaving three or more proximity sensors of a first sensor type; and asecond sensor array having three or more sensors of a second sensor typedistinct from the first sensor type, the first sensor array disposedvertically above the second sensor array on the bumper frame withrespect to the floor surface; and a communication line connecting theauxiliary circuit board to the main circuit board, the communicationline having fewer than half the wires connecting the proximity sensorarray to the auxiliary circuit board; wherein the multiplexing auxiliarycircuit board is configured to: receive, at the computing processor,sensor signals from the array of proximity sensors; process the receivedsensor signals using the computing processor; package the processedsensor signals into a data packet recognizable by the main circuitboard; and send the data packet from the computing processor to the maincircuit board.